package com.neuedu.yunong.domain;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.neuedu.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.neuedu.common.core.domain.BaseEntity;

import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 家庭成员信息管理对象 yunong_family_member_info
 *
 * @author zl
 * @date 2024-12-10
 */
@Schema(description = "家庭成员信息管理对象")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("yunong_family_member_info")
public class YunongFamilyMemberInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 家庭成员ID */
    @Schema(title = "家庭成员ID", description = "家庭成员唯一标识")
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 户主ID */
    @Schema(title = "户主ID", description = "所属家庭的户主标识")
    @TableField("household_id")
    private Long householdId;

    /** 家庭成员姓名 */
    @Schema(title = "家庭成员姓名", description = "家庭成员的姓名")
    @TableField("name")
    private String name;

    /** 性别 */
    @Schema(title = "性别", description = "家庭成员的性别")
    @TableField("gender")
    private String gender;

    /** 出生日期 */
    @Schema(title = "出生日期", description = "家庭成员的出生日期")

    @TableField("birthdate")
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
    private Date birthdate;

    /** 身份证号码 */
    @Schema(title = "身份证号码", description = "家庭成员的身份证号")
    @TableField("id_card")
    private String idCard;

    /** 与户主关系 */
    @Schema(title = "与户主关系", description = "家庭成员与户主的关系")
    @TableField("relationship")
    private String relationship;

    /** 职业 */
    @Schema(title = "职业", description = "家庭成员的职业")
    @TableField("occupation")
    private String occupation;

    /** 文化程度 */
    @Schema(title = "文化程度", description = "家庭成员的文化程度")
    @TableField("education")
    private String education;

    /** 健康状况 */
    @Schema(title = "健康状况", description = "家庭成员的健康状况")
    @TableField("health_status")
    private String healthStatus;

    /** 联系方式 */
    @Schema(title = "联系方式", description = "家庭成员的联系方式")
    @TableField("contact")
    private String contact;

    /** 现居住地址 */
    @Schema(title = "现居住地址", description = "家庭成员当前的居住地址")
    @TableField("current_address")
    private String currentAddress;
}

